package ace.tool.generate.code.impl.resolver.scheme.model.bo;

import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.AggregateClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.AggregateImplClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.ApiImplClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.CoreAutoConfigClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.CoreBootstrapScannerClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.CoreConstantClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.EntityClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.GraphqlAdminControllerClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.InitListenerClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.InitServiceClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.InitServiceImplClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.ManagerClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.ManagerImplClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.PropertiesClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.RepositoryClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.RepositoryScannerClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.RestAdminControllerClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.RestRpcControllerClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.RestTenantAdminControllerClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.resources.GraphqlDtoFileInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.resources.GraphqlInputFileInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.resources.GraphqlSchemaAutoGenerateFileInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.resources.GraphqlSchemaFileInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.resources.LiquibaseInitTableFileInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.resources.LiquibaseTableFileInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.test.TestApiTestClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.test.TestBaseTestClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.test.TestBoostrapMainApplicationClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.test.TestGraphqlAdminControllerTestClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.test.TestGraphqlTestFileBundle;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.test.TestMainSuiteClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.test.TestResourceApplicationYmlFileInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.test.TestRestAdminControllerTestClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.core.test.TestStartupTestClassInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.sdk.AutoConfigurationImportsInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.bo.sdk.SpringFactoriesInfo;
import ace.tool.generate.code.impl.resolver.scheme.model.dto.ProjectInfo;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author caspar
 * @date 2024/1/12 11:20
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CoreProject {

  private ProjectInfo info;
  private CoreAutoConfigClassInfo coreAutoConfigClassInfo;
  private CoreBootstrapScannerClassInfo coreBootstrapScannerClassInfo;
  private RepositoryScannerClassInfo repositoryScannerClassInfo;
  private PropertiesClassInfo propertiesClassInfo;
  private List<GraphqlAdminControllerClassInfo> graphqlAdminControllerClassInfos;
  private List<RestAdminControllerClassInfo> restAdminControllerClassInfos;
  private List<RestTenantAdminControllerClassInfo> restTenantAdminControllerClassInfos;
  private List<RestRpcControllerClassInfo> restRpcControllerClassInfos;
  private List<EntityClassInfo> entityClassInfos;
  private CoreConstantClassInfo coreConstantClassInfo;
  private List<RepositoryClassInfo> repositoryClassInfos;
  private List<AggregateClassInfo> aggregateClassInfos;
  private List<AggregateImplClassInfo> aggregateImplClassInfos;
  private List<ManagerClassInfo> managerClassInfos;
  private List<ManagerImplClassInfo> managerImplClassInfos;
  private List<ApiImplClassInfo> apiImplClassInfos;
  private InitListenerClassInfo initListenerClassInfo;
  private InitServiceClassInfo initServiceClassInfo;
  private InitServiceImplClassInfo initServiceImplClassInfo;
  private AutoConfigurationImportsInfo autoConfigurationImportsInfo;
  private SpringFactoriesInfo springFactoriesInfo;
  private LiquibaseInitTableFileInfo liquibaseInitTableFileInfo;
  private List<LiquibaseTableFileInfo> liquibaseTableFileInfos;
  private GraphqlSchemaFileInfo graphqlSchemaFileInfo;
  private GraphqlSchemaAutoGenerateFileInfo graphqlSchemaAutoGenerateFileInfo;
  private List<GraphqlDtoFileInfo> graphqlDtoFileInfos;
  private List<GraphqlInputFileInfo> graphqlInputFileInfos;
  private TestMainSuiteClassInfo testMainSuiteClassInfo;
  private TestBoostrapMainApplicationClassInfo testBoostrapMainApplicationClassInfo;
  private TestResourceApplicationYmlFileInfo testResourceApplicationYmlFileInfo;
  private TestBaseTestClassInfo testBaseTestClassInfo;
  private List<TestApiTestClassInfo> testApiTestClassInfos;
  private TestStartupTestClassInfo testStartupTestClassInfo;
  private List<TestGraphqlTestFileBundle> testGraphqlTestFileBundles;
  private List<TestGraphqlAdminControllerTestClassInfo> testGraphqlAdminControllerTestClassInfos;
  private List<TestRestAdminControllerTestClassInfo> testRestAdminControllerTestClassInfos;
}
